1
Pelajaran 7: Pembelajaran Transfer – Memanfaatkan Pengetahuan
EvoClass-AI002Kuliah 7
00:00

Selamat datang di Pelajaran 7, di mana kita memperkenalkan Pembelajaran Transfer. Teknik ini melibatkan penggunaan kembali model pembelajaran mendalam yang telah dilatih pada dataset besar dan umum (seperti ImageNet) serta menyesuaikannya untuk menyelesaikan tugas baru dan spesifik (seperti tantangan FoodVision kami). Ini sangat penting untuk mencapai hasil terbaik secara efisien, terutama ketika dataset berlabel terbatas.

1. Kekuatan Bobot yang Sudah Dilatih Sebelumnya

Jaringan saraf dalam belajar fitur secara hierarkis. Lapisan bawah mempelajari konsep dasar (tepi, sudut, tekstur), sementara lapisan yang lebih dalam menggabungkannya menjadi konsep kompleks (mata, roda, objek tertentu). Inti dari wawasan ini adalah bahwa fitur dasar yang dipelajari di awal bersifat secara universal dapat diterapkandi sebagian besar bidang visual.

Komponen Pembelajaran Transfer

  • Tugas Sumber: Pelatihan pada 14 juta gambar dan 1000 kategori (misalnya, ImageNet).
  • Tugas Tujuan: Menyesuaikan bobot untuk mengklasifikasikan dataset yang jauh lebih kecil (misalnya, kelas FoodVision kami).
  • Komponen yang Dimanfaatkan: Sebagian besar parameter jaringan—lapisan ekstraksi fitur—digunakan kembali secara langsung.
Keuntungan Efisiensi
Pembelajaran transfer secara signifikan mengurangi dua hambatan sumber daya utama: Biaya Komputasi (Anda menghindari pelatihan seluruh model selama beberapa hari) dan Persyaratan Data (akurasi tinggi dapat dicapai dengan ratusan, bukan ribuan, contoh pelatihan).
train.py
TERMINALbash — pytorch-env
> Siap. Klik "Jalankan" untuk menjalankan.
>
PENGAMAT TENSORLangsung

Jalankan kode untuk memeriksa tensor aktif
Pertanyaan 1
Apa keunggulan utama menggunakan model yang sudah dilatih sebelumnya pada ImageNet untuk tugas visi baru?
Ini membutuhkan data berlabel yang lebih sedikit dibandingkan pelatihan dari nol.
Ini benar-benar menghilangkan kebutuhan akan data pelatihan apa pun.
Ini menjamin akurasi 100% segera.
Pertanyaan 2
Dalam alur kerja Pembelajaran Transfer, bagian mana dari jaringan saraf biasanya dibekukan?
Lapisan Output Akhir (Kepala Klasifikasi).
Dasar Konvolusi (lapisan Ekstraksi Fitur).
Seluruh jaringan biasanya tidak dibekukan.
Pertanyaan 3
Ketika mengganti kepala klasifikasi di PyTorch, parameter apa yang harus Anda tentukan terlebih dahulu dari basis yang dibekukan?
Ukuran batch data tujuan.
Ukuran fitur masukan (dimensi output dari lapisan konvolusi terakhir).
Jumlah total parameter model.
Tantangan: Menyesuaikan Kepala Klasifikasi
Merancang klasifikasi baru untuk FoodVision.
Anda memuat model ResNet yang sudah dilatih sebelumnya pada ImageNet. Lapisan fitur terakhir menghasilkan vektor berukuran 512. Proyek 'FoodVision' Anda memiliki 7 kelas makanan yang berbeda.
Langkah 1
Berapa ukuran fitur masukan yang dibutuhkan untuk lapisan Linear baru yang dapat dilatih?
Solusi:
Ukuran fitur masukan harus sesuai dengan keluaran lapisan dasar yang dibekukan.
Ukuran: 512.
Langkah 2
Apa potongan kode PyTorch untuk membuat lapisan klasifikasi baru ini (dengan asumsi output dinamai `new_layer`)?
Solusi:
Ukuran keluaran 512 adalah masukan, dan jumlah kelas 7 adalah keluaran.
Kode: new_layer = torch.nn.Linear(512, 7)
Langkah 3
Berapa ukuran fitur keluaran yang dibutuhkan untuk lapisan Linear baru?
Solusi:
Ukuran fitur keluaran harus sesuai dengan jumlah kelas tujuan.
Ukuran: 7.